#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
代码清理脚本
用于清理代码中的注释掉的代码块、未使用的导入和死代码
"""

import os
import re
import logging
from datetime import datetime

# 配置日志
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    filename='code_cleanup_log.txt',
    filemode='w'
)

# 主目录路径
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

# 需要清理的Python文件列表
python_files = []

# 收集项目中的所有Python文件
def collect_python_files():
    """
    收集项目中所有的Python文件
    """
    for root, dirs, files in os.walk(BASE_DIR):
        # 跳过__pycache__目录
        if '__pycache__' in dirs:
            dirs.remove('__pycache__')
        # 跳过backup目录
        if 'backup' in dirs:
            dirs.remove('backup')
        # 跳过Data目录
        if 'Data' in dirs:
            dirs.remove('Data')
        
        for file in files:
            if file.endswith('.py') and file != 'cleanup_code.py' and file != 'cleanup_files.py':
                python_files.append(os.path.join(root, file))
    
    logging.info(f"收集到 {len(python_files)} 个Python文件")
    print(f"收集到 {len(python_files)} 个Python文件待清理")

# 清理注释掉的代码
def remove_commented_code(content):
    """
    移除注释掉的代码块
    
    Args:
        content: 原始代码内容
    
    Returns:
        清理后的代码内容
    """
    # 移除多行注释中的代码块（通常在
    移除明显未使用的导入（简单实现）
    
    清理单个Python文件
    
    主函数，执行代码清理操作
    """
    print(f"开始清理代码... ({datetime.now().strftime('%Y-%m-%d %H:%M:%S')})")
    logging.info("开始执行代码清理操作")
    
    # 收集Python文件
    collect_python_files()
    
    # 统计信息
    total_files = len(python_files)
    processed_files = 0
    modified_files = 0
    total_saved_size = 0
    total_unused_imports = 0
    
    # 清理每个文件
    for file_path in python_files:
        processed_files += 1
        print(f"处理文件 {processed_files}/{total_files}: {os.path.basename(file_path)}")
        
        success, saved_size, unused_import_count = cleanup_file(file_path)
        
        if success:
            modified_files += 1
            total_saved_size += saved_size
            total_unused_imports += unused_import_count
    
    # 生成清理报告
    print("\n===== 代码清理报告 =====")
    print(f"总处理文件数: {total_files}")
    print(f"修改的文件数: {modified_files}")
    print(f"清理的总空间: {total_saved_size/(1024):.2f} KB")
    print(f"移除的未使用导入数: {total_unused_imports}")
    
    logging.info(f"代码清理操作完成")
    logging.info(f"总处理文件数: {total_files}")
    logging.info(f"修改的文件数: {modified_files}")
    logging.info(f"清理的总空间: {total_saved_size/(1024):.2f} KB")
    logging.info(f"移除的未使用导入数: {total_unused_imports}")
    
    print(f"\n代码清理操作已完成。详情请查看 code_cleanup_log.txt 文件。")

if __name__ == "__main__":
    main()
